""" mainADM
        Opcoes:
    OK    -Relatorio
    OK        -Todas
    OK        -Por Status (Aberto, em andamento, Aguardando Peca, CONCLUIDO)
              -Por  ID

    OK    -Gerenciar Equipamento
                -Modificar atributos
                -Modificar status-erro-
                -Inserir Diagnostico
        

     OK   -Sair """

from Equipamento import *
from Cliente import *
from Relatorio import *

"""
##############################################################
#                       MENU PRINCIPAL                       #
##############################################################
"""

def mainTEC():
        print """        Menu Tecnico
        1 - Relatorio
        2 - Gerenciar Equipamento
        0 - Sair
        """
        opcao = raw_input("")
        if (opcao == '1'):
                exibirRelatorio()
        if (opcao == '2'):
                gerenciarEquipamento()

        if (opcao == '0'):
            print "Obrigado!\n\n"

            
            
        else:
            print "\nDigite uma opcao!\n"
            mainTEC()

"""
##############################################################
#                        RELATORIO                           #
##############################################################
"""

def exibirRelatorio():
        print """        Selecione a opcao.
    1 - Todos
    2 - Por STATUS
    3 - Por ID
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
                rel = Relatorio()
                rel.RelatorioCompleto()
        if (opcao == '2'):
            print """        Selecione o Status
    1 - Aberto
    2 - Em Andamento
    3 - Aguardando Pecas
    4 - Concluido
      ------------------
    0 - Voltar
    """
            opcao = raw_input("")
            if (opcao == '1'):
                    Status = "Aberto"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '2'):
                    Status = "Em Andamento"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '3'):
                    Status = "Aguardando Pecas"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '4'):
                    Status = "Concluido"
                    rel = Relatorio()
                    rel.RelatorioStatus(Status)
            if (opcao == '0'):
                    exibirRelatorio()
        if (opcao == '3'):
                IdEquipamento = raw_input("Digite o ID do equipamento: ")
                rel = Relatorio()
                rel.RelatorioIdEquipamento(IdEquipamento)
                rel.diagEquipamento(IdEquipamento)
        if (opcao == '0'):
            mainTEC()


"""
##############################################################
#                GERENCIAR EQUIPAMENTO                       #
##############################################################
"""
def gerenciarEquipamento():
        print """
    1 - Modificar Atributos
    2 - Modificar Status
    3 - Inserir Diagnostico
    0 - Voltar
    """
        opcao = raw_input("")
        if (opcao == '1'):
            alterarEquipamento()
        if (opcao == '2'):
            idEquipamento = raw_input("Digite o codigo do equipamento: ")
            alterarStatus(idEquipamento)
        if (opcao == '3'):
            inserirDiagnostico()
        if (opcao == '0'):
            mainTEC()
        else:
            gerenciarEquipamento()
            


def alterarEquipamento():
        idEquipamento = raw_input("Digite o codigo do equipamento: ")
        equipamento = Equipamento()
        equipamento.setIdEquipamento(idEquipamento)
        retorno = equipamento.load()
        if (retorno == False):
            print "Id nao encontrado!"
            alterarEquipamento()
        else:    
        
            descricao = raw_input("Descricao: ")
            marca = raw_input("Marca: ")
            modelo = raw_input("Modelo: ")
            acessorio = raw_input("Acessorio: ")
            hd = raw_input("HD: ")
            memoria = raw_input("Memoria: ")
            processador = raw_input("Processador: ")
            chave= raw_input("Confirmar dados? S ou N\n")
            if chave.upper() == "S" :
                    equipamento = Equipamento(descricao,marca,modelo,acessorio,hd,memoria,processador)
                    equipamento.setIdEquipamento(idEquipamento)
                    equipamento.update()
                    print "Equipamento alterado com sucesso!"
            elif chave.upper() == "N":
                    alterarEquipamento()


def inserirDiagnostico():
        idEquipamento = raw_input("ID Equipamento: ")
        equipamento = Equipamento()
        equipamento.setIdEquipamento(idEquipamento)
        retorno = equipamento.load()
        if (retorno == False):
            print "Id nao encontrado!"
            inserirDiagnostico()
        else:
                Diagnostico = raw_input("Diagnostico: ")
                TecResponsavel = raw_input("Tecnico Responsavel: ")
                print ("\n ID Equipamento: %s\n Diagnostico:%s\n Tecnico Responsavel:%s\n") %(idEquipamento,Diagnostico,TecResponsavel)
                chave= raw_input("Confirmar dados? S ou N\n")
                if chave.upper() == "S" :
                        equipamento = Equipamento()
                        equipamento.insertDiagnostico(idEquipamento,Diagnostico,TecResponsavel)
                        alterarStatus(idEquipamento)
                elif chave.upper() == "N":
                        inserirDiagnostico()
        
def alterarStatus(idEquipamento):
        equipamento = Equipamento()
        equipamento.setIdEquipamento(idEquipamento)
        retorno = equipamento.load()
        if (retorno == False):
            print "Id nao encontrado!"
            alterarStatus()
        else:
                        
                print """        Selecione o Status
            - Aberto
            - Em Andamento
            - Aguardando Pecas
            - Concluido\n"""

                status = raw_input("Digite o status da maquina: ")
                if status == "":
                        print "Digite um Status valido!"
                        alterarStatus(idEquipamento)
                else:
                        equipamento.setStatus(status.upper())    
                        equipamento.updateStatus()
                        print "Equipamento alterado com sucesso!\n\n"  

